【report】 Managing Complexity #AWSreInvent #WernerVogels #Keynote
こんにちは。AWS 事業本部の Yoshi です。
re:Invent 2024 でラスベガスに来ています。
複雑さの管理をテーマにした Dr. Werner Vogels による Keynote に参加しました。
Dr. Werner Vogels とは?
Amazon 参画以前は。学術機関で分散システムの研究に従事していたアカデミックな背景を持つ研究者だった。Amazon 入社から数ヶ月後、Jeff Bezos と Rick Dalzell から CTO のポジションを打診され就任。その後、AWS 基盤技術確立に貢献してクラウドコンピューティングの発展に大きく寄与した。現在は、Amazon の CTO 兼副社長として 20 年以上在籍、技術革新と社会貢献の両立を提唱しながら若い企業や組織の技術支援に注力。reinvent では毎度、我々にメッセージ投げかけてくれる。
ポイント
-
- Previously on Keynote
-
- 2024 Keynote 概要
-
- Simplexity に関する寸劇
-
- AWS が学んだ重要な教訓
-
- 社会貢献への呼びかけ
1. Previously on Keynote
2022 The Importance of Asynchronous Architecture
現実世界は発生した事象(イベント)によって動作する大規模かつ非同期な不確実な世界である。その不確実性に対処するための最善な方法は、事象をトリガーとしたイベント駆動であること。イベント駆動なシステムはグローバルにスケールするシステムも作ることができると説明。また、イベント駆動型アーキテクチャは、当初はモノリシックなアーキテクチャで開始した Amazon の大規模システムの拡張性と進化の必要性から生まれ、その有効性が実証されてきた。
ポイント:
- 非同期アーキテクチャの採用を推奨
- 自然界からの学びを重視
- 量子コンピューティングの可能性に言及
2023 The Frugal Architect
Frugal Architect というコスト効率の高いアーキテクチャ設計の重要性、考え方を提唱。
好きなだけ多くのリソースを使用できるクラウドだけれど、アーキテクチャ設計段階から必要なリソースでスケーラビリティとコストバランス、エネルギー効率の高い環境に配慮したシステム設計をしよう。
ポイント:
- 技術の力で社会課題を解決することの重要性と、コストと持続可能性を意識しながら革新を進めていく必要性
- AI ツールは人間の判断を支援するものであり、人間の創造性や判断力が重要
- The Frugal Architect
2. 2024 Keynote 概要
クラウドシステムにおける複雑性の管理方法について、AWS の 20 年の経験を基に解説。システムの進化可能性を重視し、適切な分割と自動化によって複雑性を管理する重要性を説明。
3. Simplexity に関する寸劇
シーン設定
Werner Vogels を中心に、S3(Simple Storage Service)の初期の開発チームの様子を描写。2000 年代初期、4-5 人程度の小さなチームの様子を回想。AWS の組織設計の原則、システム設計の考え方、イノベーションの起源につてユーモアを交えながら表現している。
Two Pizza Team 誕生にまつわるエピソード
アマゾニアン大好き Two Pizza Team の誕生。ある夜、大量のピザを持って来た人物(Alex)のエピソード。ピザの箱を落としてしまい、2枚だけ残ったという出来事。これが Two Pizza Team という考え方の始まり。組織設計の原則を示唆している。
Two Pizza Team という考えは、大きな組織を 2枚のピザが食べられる人数に規模を制限することで、自律的なチームに分割する方針のこと。
参考情報:Two Pizza Team
Glacier にまつわるエピソード
Alex が人々に対して、ピザの半分を冷凍庫に入れるように指示した話。この冷凍庫のエピソードは、S3 Glacier ストレージクラスの開発を示唆する比喩として使用。異なるアクセスパターンに対する異なるコスト層の概念を表現。システム設計の考え方を示唆している。
イノベーションの起源
偶然の出来事から重要な原則が生まれる可能性、シンプルなアイデアが複雑なシステムの基礎となる。
4. AWS が学んだ重要な教訓
AWS 創設以来 20 年間、システムの複雑性は増加の一途をたどってきた。しかし、複雑性は避けられないが、管理は可能という考えのもと、システムの設計と運用における重要な原則を確立してきた。
以下、 6 つの原則は、現代のクラウドシステムが直面する複雑性に対する、AWS の体系的なアプローチを示すもの。これらの原則が、今後さらに複雑化するシステムの管理において、重要な指針となると説明。
① 進化可能性を要件として組み込む
システム設計の最重要原則として進化可能性を挙げた。Amazon S3 の事例を引き合いに出し、サービス開始時から将来の変更や拡張を想定した設計が不可欠だと強調。規模が 10 倍になるごとにアーキテクチャの見直しが必要と説明。
② 複雑性を小さな部分に分解する
大規模システムの管理には、複雑性を小さな構成要素に分解することが重要だと説明。Amazon CloudWatch の例を挙げ、単一の大規模サービスから、複数の独立したマイクロサービスへの分割により、管理性と信頼性が向上した。
③ 組織をアーキテクチャに合わせる
Two Pizza Team の原則に基づき、組織構造をシステムアーキテクチャに合わせることの重要性を説明。小規模で自律的なチームが、それぞれのコンポーネントに責任を持つ体制により、複雑性の管理と革新的な開発が可能になると説明。
④ セル単位での組織化
システムを独立した「セル」に分割する手法について解説。各セルが独立して機能することで、障害の影響を局所化し、システム全体の安定性を向上させる効果があると説明。特に大規模なシステムでは、この手法が効果的だと説明。
⑤ 予測可能なシステム設計
システムの予測可能性を高めることの重要性を指摘。例として、AWS Hyperplane の設計を挙げ、定期的な設定ファイルの更新による予測可能な処理の実現方法を紹介。これにより、システムの安定性と管理性が向上すると説明。
⑥ 複雑性の自動化
人間の判断が真に必要な部分以外は、可能な限り自動化すべきとの見解を示した。特に、セキュリティ、キャパシティ管理、新規リージョンの構築などの分野で、AWS が積極的に自動化を推進している事例を紹介。自動化により、複雑性を効果的に管理できると説明。
5. 社会貢献への呼びかけ
技術を通じた社会貢献の重要性を強調。特に、国連の持続可能性目標達成に向けて、若い企業や組織を支援する Tech Rescue の取り組みについて紹介。
Tech Rescue の紹介
- 若い企業や組織が世界の重要な問題を解決するのを支援する取り組み
- AI のためのコホートシステムを持ち、CTO のためのフェローシップを創設
- AWS ヒーローズも若い企業へのアドバイスを提供して支援
2050年に向けた課題
- 国連の持続可能性目標に関連して言及
- 20 億人の人口増加に対する課題
- 食料供給の問題
- 医療提供の問題
- 経済的に持続可能な未来の確保
技術者への呼びかけ
- 小規模な技術チームしか持たない組織への支援を要請
- 2 週間から 1 ヶ月程度の時間提供による支援の提案
- 技術者の経験を活かした世界の問題解決への参加を促進
技術者の責任
- 技術を通じて世界の重要な問題を解決する責任があることを強調
- 単なる技術開発だけでなく、社会貢献の重要性を指摘
おわりに
複雑性を持ったシステムに対して、AWS が実施してきた設計原則と管理手法を参考にシンプルにすることができれば、今後さらに複雑化するシステムの管理可能なのではと感じた。シンプルなアイデアが複雑なシステムの基礎となるかもしれない。
- 進化可能性を要件として組み込む
- 複雑性を小さな部分に分解する
- 組織をアーキテクチャに合わせる
- セル単位での組織化
- 予測可能なシステム設計
- 複雑性の自動化
また、我々エンジニアが AI やテクノロジーを活用することで単なる技術開発だけでなく、世界の重要な問題を解決することが可能なのだというメッセージも強く感じた。
そして Keynote 最後のいつもの Now Go Build のシーン。冒頭寸劇の Alex が壁の向こう側に向かいます。果たして彼は...
このブログがどなたかの参考になれば幸いです。
以上、Yoshi でした!